home *** CD-ROM | disk | FTP | other *** search
/ Night Owl 6 / Night Owl's Shareware - PDSI-006 - Night Owl Corp (1990).iso / 038a / bas_int1.zip / WHAT_DRV.BAS < prev   
BASIC Source File  |  1991-03-04  |  2KB  |  53 lines

  1. '====================================================================
  2. '                           -=[CURDIR.BAS]=-
  3. '   Date : 27-Feb-91
  4. '   From : Rick Cooper
  5. 'Subject : Re: drive spec
  6. '
  7. ' This Function Will Return The Current Path With A Complete Path Spec
  8. ' Including Drive And Trailing "\"
  9. ' If You Don't Want The trailing "\" Then Use A Left$ Statement To
  10. ' Remove It... E.G. Dir$ = Left$(CurrentDir$,Len(CurrentDir$) - 1)
  11. ' Don't Forget To Place '$INCLUDE:'QB.BI' At The Top of your Program
  12. '                            Rick Cooper
  13. '===================================================================
  14.  
  15. FUNCTION CurrentDir$
  16. DIM InRegs AS RegTypeX, OutRegs AS RegTypeX
  17. InRegs.Ax = &H1900                         'Use Dos Function To Get
  18. CALL INTERRUPTX(&H21, InRegs, OutRegs)     'Current Drive
  19. Drive% = (OutRegs.Ax AND &HFF) + 1         'Function Returns 0 Based
  20.                                            'Drive Number And Next
  21.                                            'Function needs A 1 Based
  22.                                            'Number So We Add 1 To Result
  23.  
  24. Drive$ = CHR$(64 + Drive%)                 'Create String Representation
  25.                                            'In Uppercase, Of Current
  26.                                            'Drive Number
  27.  
  28. Directory$ = SPACE$(64)                    'Create Scratch Buffer
  29.  
  30. InRegs.Ax = (256 * &H47) + 0               'Load Function Number
  31. InRegs.Dx = (256 * 0) + Drive%             'Load Drive Number
  32. InRegs.Ds = VARSEG(Directory$)             'Pointer To A 64 Byte
  33. InRegs.Si = SADD(Directory$)               'Scratch Buffer
  34. CALL INTERRUPTX(&H21, InRegs, OutRegs)     'Call Dos Int. 21 Func. 47
  35.  
  36. spot = INSTR(Directory$, CHR$(0))          'Function Returns An ASCIIZ
  37. IF spot <> 0 THEN                          'String And We Don't Want The
  38.   Directory$ = LEFT$(Directory$, spot - 1) 'Terminating Null Character
  39. END IF                                     'So This Removes It And
  40.                                            'Trailing Spaces
  41.  
  42. IF LEN(Directory$) > 1 THEN                'If It Isn't The Root Then
  43.                                            'We Add A Trailing "\"
  44.  
  45. CurrentDir$ = Drive$ + ":\" + Directory$ + "\"
  46.  
  47. ELSE                                       'If It Is The Root We Don't
  48. CurrentDir$ = Drive$ + ":\" + RTRIM$(LTRIM$(Directory$))
  49. END IF                                     'Done!
  50.  
  51.  
  52. END FUNCTION
  53.